splice, slice, substring, substr等方法的一些区别
今天来写写这些个方法的区别,平时在工作中总是傻傻分不清楚,写篇笔记留着查看。
1.splice()方法
定义:splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注意: 该方法会改变原始数组。
用法:
1
arr.splice(index, howmany, item1, ....itemN)
index: 必需。整数,规定添加/删除项目的下标,使用负数可从数组结尾处规定位置。
howmany: 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item: 可选。要添加的元素
例子
1
2
3var arr = [1,2,3,4,5]
console.log(arr.splice(0,1,2)); //[1]
console.log(arr); //[2,2,3,4,5]
2.slice()方法
定义:slice()方法可从已有的数组中返回选定的元素。
注意: 该方法不会改变原始数组。
用法:
1
arr.slice(start,end)
start: 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end: 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
例子
1
2
3var arr = [1,2,3,4];
console.log(arr.slice(1, 3)); //[2, 3]
console.log(arr); //[1,2,3,4]
3.substring()方法
定义: substring() 方法用于提取字符串中介于两个指定下标之间的字符。
注意: 该方法不会改变原始字符串。
重要事项:与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。
用法:
1
str.substring(start,stop)
start: 必需。一个非负的整数,规定要提取的子串的第一个字符在 str 中的位置。
end: 可选。一个非负的整数,比要提取的子串的最后一个字符在 str中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。
例子
1
2
3
4
5var str="Hello world!";
console.log(str.substring(3)); //'lo world!'
console.log(str.substring(3,8)); //'lo wo'
console.log(str.substring(5,1)); //'ello '
console.log(str); //'Hello world!'
4.substr()方法
定义: substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
注意: 该方法不会改变原始字符串。
注释:substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
用法:
1
str.substr(start,length)
start: 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length: 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 str的开始位置到结尾的字串。
例子
1
2
3
4
5var str="Hello world!";
console.log(str.substr(3)); //'lo world!'
console.log(str.substr(-1)); //'!'
console.log(str.substr(1,7)); //'ello wo'
console.log(str); //'Hello world!'